Dew Math for .NET
|
Minimizes the function of several variables by using the Marquardt optimization algorithm.
Parameters |
Description |
TRealFunction Fun |
Real function (must be of TRealFunction type) to be minimized. |
TGradHess GradHess |
The gradient and Hessian procedure (must be of TGradHess type), used for calculating the gradient and Hessian matrix. |
ref double[] Pars |
Stores the initial estimates for parameters (minimum estimate). After the call to routine returns adjusted calculated values (minimum position). |
[In] double[] Consts |
Additional Fun constant parameteres (can be/is usually nil). |
[In] object[] ObjConst |
Additional Fun constant parameteres (can be/is usually nil). |
out double FMin |
Returns function value at minimum. |
TMtx IHess |
Returns inverse Hessian matrix. |
out TOptStopReason StopReason |
Returns reason why minimum search stopped (see TOptStopReason). |
[In] TMtxFloatPrecision FloatPrecision |
Specifies the floating point precision to be used by the routine. |
int MaxIter |
Maximum allowed numer of minimum search iterations. |
double Tol |
Desired Pars - minimum position tolerance. |
double GradTol |
Minimum allowed gradient C-Norm. |
double Lambda0 |
Initial lambda step, used in Marquardt algorithm. |
TStrings Verbose |
If assigned, stores Fun, evaluated at each iteration step. Optionally, you can also pass TOptControl object to the Verbose parameter. This allows the optimization procedure to be interrupted from another thread and optionally also allows logging and iteration count monitoring. |
the number of iterations required to reach the solution(minimum) within given tolerance.
Problem: Find the minimum of the "Banana" function by using the Marquardt method.
Solution:The Banana function is defined by the following equation:
Also, Marquardt method requires the gradient and Hessian matrix of the function. The gradient of the Banana function is:
and the Hessian matrix is :
Copyright (c) 1999-2024 by Dew Research. All rights reserved.
|
What do you think about this topic? Send feedback!
|